/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hibernate;

import java.util.Collection;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author raul
 */
public class Busqueda extends HibernateUtil{
    private Criteria criteria;

    public Criteria getCriteria() {
        return criteria;
    }
    
    public Busqueda (Class clase) {
        criteria = getSession().createCriteria(clase);
    }

    public void agregarOrdenAsc(String propiedad){
        criteria.addOrder(Order.asc(propiedad));
    }
   
    public void crearAlias(String propiedad, String alias){
        criteria.createAlias(propiedad, alias);
    }

    public void addEq(String propiedad, Object valor){
        criteria.add(Restrictions.eq(propiedad, valor));
    }

    public void addIlike(String propiedad, String valor){
        criteria.add(Restrictions.ilike(propiedad, valor, MatchMode.ANYWHERE));
    }
    
    public void addIn(String propiedad, Collection valores){
        criteria.add(Restrictions.in(propiedad, valores));
    }

    public List ejecutar(){
        return criteria.list();
    }
    
    public Object ejecutarUnique(){
        return criteria.uniqueResult();
    }
   
}